יש מערכת התחברות באתר שאם קיים כזה שם וסיסמה אז יוצר סשן עם הערך 'בלהבלה' ומעביר בHEADER לדף הבא, ויוצג לו שם הסשן(בלהבלה).
באקספלור זה עובד.
בפיירפוקס ובכרום זה לא מדפיס את הסשן. רק אם עוברים לדף הבא דרך קישור (בצורה ידנית, ולא דרך הHEADER) אז הסשן מופיע.
למה זה קורה,ואיך לסדר את זה?

4 תשובות

avatar ענה intval ב 23 לינואר 2012 #

תוודא שב php.ini שלך יש רשומה

session.use_cookies 1 [/php

ותנסה ליצור מקרה יותר פשוט של הבעיה:
[php]<?php
session_start();

if(isset($_GET['redirected']))
{
  echo $_SESSION['test'], ', you were redirected';
}
else
{
  $_SESSION['test'] = 'hello';
  header('location: ?redirected=true');
}

תראה עם באמת איתרת נכון את מקור הבעיה.

avatar ענה משתמש_92562 ב 24 לינואר 2012 #

לאחר סדרת ניסויים הגעתי למסקנה שהHEADER אשם!
יש לי במערכת התחברות תנאי: שאם נמצא כזה שם וסיסמא(mysql_num_rows>0) אז שיצור סשן ויעבור דף עם HEADER.

כשמחקתי את הHEADER אז הסשן עבד טוב.
הבעייה שאני צריך לעבור דף איך לעשות את זה?
(חשבתי שיהיה תנאי נוסף שאם קיים בסשן ערך אז שיעשה HEADER -כי אם יש סשן ממילא הוא קיים במערכת=מחובר).
יש רעיון אחר נחמד יותר?

avatar ענה intval ב 24 לינואר 2012 #

header בדרך כלל לא אשם בשום דבר.
תוודא שיש לך session_start בכל העמודים כמו שצריך.

avatar ענה משתמש_92562 ב 24 לינואר 2012 #

אוקיי הסתדרתי תודה!